1. Technical Field
This invention generally relates to address translation in a computing environment, and more specifically relates to dynamic address translation table allocation for a direct memory access (DMA) window without a platform or partition reboot.
2. Background Art
Address translation tables (ATTs) are used to provide security for main storage memory accesses by I/O adapters sometimes called DMA Windows. The ATT maps addresses used by the I/O adapter to do direct memory access (DMA) of main storage memory. The ATT holds address translation table entries (ATTE), where each entry consists of authority information (Read/Write) and main storage address information. A typical ATTE is at least 8 bytes in length, but other size entries could be used. Each ATTE maps to a page of main memory. The pages can be various sizes such as 4K, 64K, 1M, and 16M. There are also larger blocks of main memory used to manage the allocation of main memory. These larger blocks are sometimes called Logical Memory Blocks, or LMBs. The LMBs are used to divide up main storage memory into pieces that can be assigned to a hypervisor that manages logical partitions or to the logical partitions themselves.
The ATT must be accessible by the hardware to do translations and trusted firmware, such as a hypervisor, must be able to set up mappings when needed. Hence the ATT is typically in hypervisor storage memory. It is advantageous to limit memory used by the Hypervisor since any memory used by the hypervisor is memory that can't be used by partitions/users. Also, hypervisor storage memory typically must be allocated during platform initialization. There is a tradeoff between large ATT tables and small ATT tables. A large ATT table may allow all or nearly all of memory to be mapped to the I/O adapter but that will take too much memory. A small ATT uses less memory but may result in more overhead by the hypervisor while mapping and unmapping pages of memory. Further, determining the size of the DMA windows needed for each IO adapter at initialization time is very difficult.